<?php
/***模块注册、重要常量配置，请谨慎更改***/

/***设置运行模式和重要常量***/
	define('DEBUG',true); 				//是否调试态，调试态可产生调试日志，关闭权限处理等
										//调试状态分3个等级，默认为true记录全部，2不记录查询操作，3记录指定表操作
	define('RUN_SAFE',false);			//是否设置安全运行模式，如必须使用cookie输入app_efid等.
	define('RUN_FAST',false);			//是否设置快速运行模式，如忽略检查timezone等，相信系统已经配置好参数.
	define('RUN_SESSPUB',false);		//是否设置session是否全局，各webapp共享session，其cookie的path为/
	define('RUN_ACC_CTL',false); 		//是否激活用户访问控制模块
	define('RUN_USER_DEBUG',false); 	//是否激活按用户设置调试态模块
	define('RUN_CONTROL',true); 		//是否激活控件支持
	define('RUN_WIDGET',true); 			//是否激活配件支持
	define('RUN_COMBILE_TPL',false); 	//是否激活tpl文件组合装配缓存支持
	define('RUN_WEB_LOG',false); 		//是否激活网页显示log记录
	define('RUN_MLANG_VIEW',false); 	//是否支持多语言view

	define('APP_SALT','Openshop'); 		//数据加密或签名用的附加文字

/***end 设置运行模式和重要常量***/


/**系统设置:注册tools，请小心更改**/

	$context->register_tool('log','lib/tool/Log.class.php');

  	//$context->register_tool('db','lib/db/PDODB.class.php');
  	$context->register_tool('db','/lib/db/MutilPDODB.class.php');

	//多数据库注册
	//$context->register_tool('db_crm','/lib/db/PDODB.class.php','','_crm');

	//FileConfig、ApcConfig、MemCacheConfig
	$context->register_tool('conf','lib/tool/Config.class.php','EmptyCacheConfig');
	$context->register_tool('shop_conf',$context->app_name.'/lib/tool/Setting.class.php','FileSetting');

	//FileCache、ApcCache、MemCacheCache，用于缓存页面数据
	$context->register_tool('cache','lib/tool/Cache.class.php','EmptyCache',1);

	//用于缓存读写分离数据库配置
	$context->register_tool('mutil_db_cache','lib/tool/Cache.class.php','FileCache',0.1);

	//用于缓存文章内容、CMS数据
	$context->register_tool('static_cache','lib/tool/Cache.class.php','FileCache',2);

	//用于缓存商品基础资料数据
	$context->register_tool('basic_cache','lib/tool/Cache.class.php','EmptyCache',2);

	//用于缓存静态页面
	$context->register_tool('html_cache','lib/tool/Cache.class.php','FileCache',4);

	//用于缓存组件数据
	$context->register_tool('wgt_cache','lib/tool/Cache.class.php','FileCache',2);

/**end 系统设置**/

/**系统设置: 注册filters和renders，请小心更改**/
	//request filter
	if(defined('RUN_ACC_CTL') && RUN_ACC_CTL) $context->register_request_filter('UserAccessFilter','lib/filter/UserAccessFilter.class.php',
		create_function('$app','return $app["mode"]=="func";'));		//添加访问是否非法检查，增加create_function('$app','return $app["mode"]=="func";'仅对func有效。

	if(defined('RUN_USER_DEBUG') && RUN_USER_DEBUG) $context->register_request_filter('UserDebugFilter','lib/filter/UserDebugFilter.class.php',
		create_function('$app','return !( defined("DEBUG") && DEBUG) && isset($app["user_debug"]);'));//function($app){return !( defined("DEBUG") && DEBUG) && isset($app["user_debug"]);});

	if(defined('RUN_CONTROL') && RUN_CONTROL)  $context->register_request_filter('ControlFilter','lib/ctl/Control.class.php',
		create_function('$app','return $app["fmt"]=="html" && $app["err_no"]==0;'));
    /*
	if(defined('RUN_WIDGET') && RUN_WIDGET) $context->register_request_filter('DBWidgetAddFilter','lib/filter/DBWidgetFilter.class.php',
		create_function('$app','return $app["fmt"]=="html" && $app["err_no"]==0;'));//从widget_opt数据库配置表添加配件参数
    */
	//reponse filter
	if(defined('RUN_WIDGET') && RUN_WIDGET) $context->register_response_filter('CacheWidgetCallFilter','lib/filter/DBWidgetFilter.class.php',
		create_function('$app','return $app["fmt"]=="html" && $app["err_no"]==0;'));//调用配件app函数 ，并缓存组合 Widget action	文件
	//if(defined('RUN_WIDGET') && RUN_WIDGET) $context->register_response_filter('WidgetCallFilter','lib/filter/DBWidgetFilter.class.php',
	//	create_function('$app','return $app["fmt"]=="html" && $app["err_no"]==0;'));//直接调用配件Widget action函数,不缓存组合

	if(defined('RUN_COMBILE_TPL') && RUN_COMBILE_TPL) $context->register_response_filter('CombineTPLFilter','lib/filter/CombineTPLFilter.class.php',
		create_function('$app','return $app["fmt"]=="html" && $app["err_no"]==0;'));//装配并缓存模板文件

	//renderers
	$context->register_renderer('JsonRenderer','lib/filter/JsonRenderer.class.php',
		create_function('$app','return $app["mode"]=="func" || $app["fmt"]=="json";'));//function($app){return $app["mode"]=="func" || $app["fmt"]=="json";});

	$context->register_renderer('CsvRenderer','lib/filter/CsvRenderer.class.php',
		create_function('$app','return $app["fmt"]=="csv";'));//function($app){return $app["fmt"]=="csv";});

	$context->register_renderer('HtmlRenderer','lib/filter/HtmlRenderer.class.php',
		create_function('$app','return $app["fmt"]=="html";'));

/**end 系统设置**/
